﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using KaartenLib;

namespace WindowsFormsApplication1
{
    public partial class LoginFormulier : Form
    {
        private int totaalAantalPunten;
        private int aantalPunten21;
        private int aantalPuntenTroef;
        private int aantalPuntenZelfdeType;
        private int aantalPuntenOpeenvolgend;
        private string naam;
        KaartSpel spel;

        public LoginFormulier()
        {
            InitializeComponent();
            spel = new KaartSpel();
            spel.Schudden();
        }

        //params

        public int TotaalAantalPunten
        {
            get
            {
                return totaalAantalPunten;
            }
        }
        public int AantalPunten21
        {
            get
            {
                return aantalPunten21;
            }
        }
        public int AantalPuntenTroef
        {
            get
            {
                return aantalPuntenTroef;
            }
        }
        public int AantalPuntenZelfdeType
        {
            get
            {
                return aantalPuntenZelfdeType;
            }
        }
        public int AantalPuntenOpeenvolgend
        {
            get
            {
                return aantalPuntenOpeenvolgend;
            }
        }

        public string Naam
        {
            get
            {
                return naam;
            }
        }



        //forms
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if (textBox1.Text.Length < 2)
            {
                naam = "unknown";
            }
        }

        private void comboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            String text = "";
            if (!comboBox2.Visible)
            {
                text = comboBox1.Text;
            }
            else if (!comboBox3.Visible)
            {
                text = comboBox2.Text;
            }
            else if (!comboBox4.Visible)
            {
                text = comboBox3.Text;
            }
            else
            {
                text = comboBox4.Text;
            }
            switch (text)
            {
                case "Winnen op punten":
                    label7.Text = "21en";
                    label3.Text = "Mogelijke winst: 2 X inzet";
                    break;
                case "Winnen met troefkaart":
                    label7.Text = "De speler kiest een troefkaart.\nIndien deze tussen de getrokken kaarten van de speler zit wint hij.";
                    label3.Text = "Mogelijke winst: 3 X inzet";
                    break;
                case "Winnen met 4 kaarten van hetzelfde type":
                    label7.Text = "De speler kiest het type";
                    label3.Text = "Mogelijke winst: 2 X inzet";
                    break;
                case "Winnen met 3 opeenvolgende kaarten":
                    label7.Text = "Drie getrokken kaarten volgen mekaar op in waarde, ongeacht het type";
                    label3.Text = "Mogelijke winst: 1.5 X inzet";
                    break;
                case "":
                    label7.Text = "";
                    label3.Text = "";
                    break;
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            changeAantalPunten();
            saveNaam();
            // Dispose();  
            this.Visible = false;
            this.textBox1.Visible = false;
            this.numericUpDown2.Visible = false;
            this.label1.Visible = false;
            this.label2.Visible = false;
            this.button1.Visible = false;
            this.numericUpDown5.Visible = true;
            this.numericUpDown5.Maximum = totaalAantalPunten;
            this.comboBox1.Visible = true;
            this.button2.Visible = true;
            this.button3.Visible = true;
            this.label3.Visible = true;
            this.label7.Visible = true;
            this.label8.Visible = true;
            this.Visible = true;
            this.Text = "Speltypes kiezen";

        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (label4.Visible == false)
            {
                label4.Visible = true;
                comboBox2.Visible = true;
                numericUpDown1.Visible = true;
                this.numericUpDown1.Maximum = totaalAantalPunten-numericUpDown5.Value;
                button2.Location = new System.Drawing.Point(329, 70);
                label2.Location = new System.Drawing.Point(124, 70);
                label2.Location = new System.Drawing.Point(124, 100);
                label3.Location = new System.Drawing.Point(12, 97);
                label7.Location = new System.Drawing.Point(12, 62);
                button3.Location = new System.Drawing.Point(386, 130);
                ClientSize = new System.Drawing.Size(473, 165);
            }
            else if (label5.Visible == false)
            {
                label5.Visible = true;
                comboBox3.Visible = true;
                numericUpDown3.Visible = true;
                this.numericUpDown3.Maximum = totaalAantalPunten-numericUpDown1.Value - numericUpDown5.Value;
                button2.Location = new System.Drawing.Point(329, 100);
                label2.Location = new System.Drawing.Point(124, 100);
                label2.Location = new System.Drawing.Point(124, 1300);
                label3.Location = new System.Drawing.Point(12, 127);
                label7.Location = new System.Drawing.Point(12, 92);
                button3.Location = new System.Drawing.Point(386, 160);
                ClientSize = new System.Drawing.Size(473, 195);
            }
            else if (label6.Visible == false)
            {
                label6.Visible = true;
                comboBox4.Visible = true;
                numericUpDown4.Visible = true;
                this.numericUpDown4.Maximum = totaalAantalPunten - numericUpDown3.Value -numericUpDown1.Value - numericUpDown5.Value;
                button2.Location = new System.Drawing.Point(329, 130);
                label2.Location = new System.Drawing.Point(124, 130);
                label2.Location = new System.Drawing.Point(124, 160);
                label3.Location = new System.Drawing.Point(12, 157);
                label7.Location = new System.Drawing.Point(12, 122);
                button3.Location = new System.Drawing.Point(386, 190);
                ClientSize = new System.Drawing.Size(473, 225);
            }

        }
        private void changeAantalPunten()
        {
            totaalAantalPunten = (int)numericUpDown2.Value;
        }

        private void saveNaam()
        {
            this.naam = textBox1.Text;
        }

        private void button3_Click(object sender, EventArgs e)
        {
            this.numericUpDown5.Visible = false;
            this.numericUpDown1.Visible = false;
            this.numericUpDown3.Visible = false;
            this.numericUpDown4.Visible = false;
            this.comboBox1.Visible = false;
            this.comboBox2.Visible = false;
            this.comboBox3.Visible = false;
            this.comboBox4.Visible = false;
            this.button2.Visible = false;
            this.button3.Visible = false;
            this.label3.Visible = false;
            this.label4.Visible = false;
            this.label5.Visible = false;
            this.label6.Visible = false;
            this.label7.Visible = false;
            this.label8.Visible = false;

            this.label10.Visible = true;
            label10.Text = comboBox1.Text + " voor " + numericUpDown5.Value + " punten;\n";
            if (comboBox2.Text != "")
            {
                label10.Text += comboBox2.Text + " voor " + numericUpDown1.Value + " punten;\n";
            }
            if (comboBox3.Text != "")
            {
                label10.Text += comboBox3.Text + " voor " + numericUpDown3.Value + " punten;\n";
            }
            if (comboBox4.Text != "")
            {
                label10.Text += comboBox4.Text + " voor " + numericUpDown4.Value + " punten;\n";
            }

            this.label9.Visible = true;         
            this.button4.Visible = true;

            ZetAantalPuntenPerTypeSpel();
        }

        private void ZetAantalPuntenPerTypeSpel()
        {
            switch (comboBox1.Text)
            {
                case "Winnen op punten":
                    aantalPunten21 += (int)numericUpDown5.Value;
                    break;
                case "Winnen met troefkaart":
                    aantalPuntenTroef += (int)numericUpDown5.Value;
                    break;
                case "Winnen met 4 kaarten van hetzelfde type":
                    aantalPuntenZelfdeType += (int)numericUpDown5.Value;
                    break;
                case "Winnen met 3 opeenvolgende kaarten":
                    aantalPuntenOpeenvolgend += (int)numericUpDown5.Value;
                    break;
            }
            switch (comboBox2.Text)
            {
                case "Winnen op punten":
                    aantalPunten21 += (int)numericUpDown1.Value;
                    break;
                case "Winnen met troefkaart":
                    aantalPuntenTroef += (int)numericUpDown1.Value;
                    break;
                case "Winnen met 4 kaarten van hetzelfde type":
                    aantalPuntenZelfdeType += (int)numericUpDown1.Value;
                    break;
                case "Winnen met 3 opeenvolgende kaarten":
                    aantalPuntenOpeenvolgend += (int)numericUpDown1.Value;
                    break;
            }
            switch (comboBox3.Text)
            {
                case "Winnen op punten":
                    aantalPunten21 += (int)numericUpDown3.Value;
                    break;
                case "Winnen met troefkaart":
                    aantalPuntenTroef += (int)numericUpDown3.Value;
                    break;
                case "Winnen met 4 kaarten van hetzelfde type":
                    aantalPuntenZelfdeType += (int)numericUpDown3.Value;
                    break;
                case "Winnen met 3 opeenvolgende kaarten":
                    aantalPuntenOpeenvolgend += (int)numericUpDown3.Value;
                    break;
            }
            switch (comboBox4.Text)
            {
                case "Winnen op punten":
                    aantalPunten21 = (int)numericUpDown4.Value;
                    break;
                case "Winnen met troefkaart":
                    aantalPuntenTroef = (int)numericUpDown4.Value;
                    break;
                case "Winnen met 4 kaarten van hetzelfde type":
                    aantalPuntenZelfdeType = (int)numericUpDown4.Value;
                    break;
                case "Winnen met 3 opeenvolgende kaarten":
                    aantalPuntenOpeenvolgend = (int)numericUpDown4.Value;
                    break;
            }
        }

    }


}
